↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
average3: (b,f,b)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
average_3_in_gag3(0_0, 0_0, 0_0) -> average_3_out_gag3(0_0, 0_0, 0_0)
average_3_in_gag3(0_0, s_11(0_0), 0_0) -> average_3_out_gag3(0_0, s_11(0_0), 0_0)
average_3_in_gag3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gag3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gag3(s_11(X), Y, Z) -> if_average_3_in_1_gag4(X, Y, Z, average_3_in_gag3(X, s_11(Y), Z))
average_3_in_gag3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gag4(X, Y, Z, average_3_in_gag3(s_11(X), Y, Z))
if_average_3_in_2_gag4(X, Y, Z, average_3_out_gag3(s_11(X), Y, Z)) -> average_3_out_gag3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gag4(X, Y, Z, average_3_out_gag3(X, s_11(Y), Z)) -> average_3_out_gag3(s_11(X), Y, Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
average_3_in_gag3(0_0, 0_0, 0_0) -> average_3_out_gag3(0_0, 0_0, 0_0)
average_3_in_gag3(0_0, s_11(0_0), 0_0) -> average_3_out_gag3(0_0, s_11(0_0), 0_0)
average_3_in_gag3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gag3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gag3(s_11(X), Y, Z) -> if_average_3_in_1_gag4(X, Y, Z, average_3_in_gag3(X, s_11(Y), Z))
average_3_in_gag3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gag4(X, Y, Z, average_3_in_gag3(s_11(X), Y, Z))
if_average_3_in_2_gag4(X, Y, Z, average_3_out_gag3(s_11(X), Y, Z)) -> average_3_out_gag3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gag4(X, Y, Z, average_3_out_gag3(X, s_11(Y), Z)) -> average_3_out_gag3(s_11(X), Y, Z)
AVERAGE_3_IN_GAG3(s_11(X), Y, Z) -> IF_AVERAGE_3_IN_1_GAG4(X, Y, Z, average_3_in_gag3(X, s_11(Y), Z))
AVERAGE_3_IN_GAG3(s_11(X), Y, Z) -> AVERAGE_3_IN_GAG3(X, s_11(Y), Z)
AVERAGE_3_IN_GAG3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> IF_AVERAGE_3_IN_2_GAG4(X, Y, Z, average_3_in_gag3(s_11(X), Y, Z))
AVERAGE_3_IN_GAG3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> AVERAGE_3_IN_GAG3(s_11(X), Y, Z)
average_3_in_gag3(0_0, 0_0, 0_0) -> average_3_out_gag3(0_0, 0_0, 0_0)
average_3_in_gag3(0_0, s_11(0_0), 0_0) -> average_3_out_gag3(0_0, s_11(0_0), 0_0)
average_3_in_gag3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gag3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gag3(s_11(X), Y, Z) -> if_average_3_in_1_gag4(X, Y, Z, average_3_in_gag3(X, s_11(Y), Z))
average_3_in_gag3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gag4(X, Y, Z, average_3_in_gag3(s_11(X), Y, Z))
if_average_3_in_2_gag4(X, Y, Z, average_3_out_gag3(s_11(X), Y, Z)) -> average_3_out_gag3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gag4(X, Y, Z, average_3_out_gag3(X, s_11(Y), Z)) -> average_3_out_gag3(s_11(X), Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
AVERAGE_3_IN_GAG3(s_11(X), Y, Z) -> IF_AVERAGE_3_IN_1_GAG4(X, Y, Z, average_3_in_gag3(X, s_11(Y), Z))
AVERAGE_3_IN_GAG3(s_11(X), Y, Z) -> AVERAGE_3_IN_GAG3(X, s_11(Y), Z)
AVERAGE_3_IN_GAG3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> IF_AVERAGE_3_IN_2_GAG4(X, Y, Z, average_3_in_gag3(s_11(X), Y, Z))
AVERAGE_3_IN_GAG3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> AVERAGE_3_IN_GAG3(s_11(X), Y, Z)
average_3_in_gag3(0_0, 0_0, 0_0) -> average_3_out_gag3(0_0, 0_0, 0_0)
average_3_in_gag3(0_0, s_11(0_0), 0_0) -> average_3_out_gag3(0_0, s_11(0_0), 0_0)
average_3_in_gag3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gag3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gag3(s_11(X), Y, Z) -> if_average_3_in_1_gag4(X, Y, Z, average_3_in_gag3(X, s_11(Y), Z))
average_3_in_gag3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gag4(X, Y, Z, average_3_in_gag3(s_11(X), Y, Z))
if_average_3_in_2_gag4(X, Y, Z, average_3_out_gag3(s_11(X), Y, Z)) -> average_3_out_gag3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gag4(X, Y, Z, average_3_out_gag3(X, s_11(Y), Z)) -> average_3_out_gag3(s_11(X), Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
AVERAGE_3_IN_GAG3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> AVERAGE_3_IN_GAG3(s_11(X), Y, Z)
AVERAGE_3_IN_GAG3(s_11(X), Y, Z) -> AVERAGE_3_IN_GAG3(X, s_11(Y), Z)
average_3_in_gag3(0_0, 0_0, 0_0) -> average_3_out_gag3(0_0, 0_0, 0_0)
average_3_in_gag3(0_0, s_11(0_0), 0_0) -> average_3_out_gag3(0_0, s_11(0_0), 0_0)
average_3_in_gag3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gag3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gag3(s_11(X), Y, Z) -> if_average_3_in_1_gag4(X, Y, Z, average_3_in_gag3(X, s_11(Y), Z))
average_3_in_gag3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gag4(X, Y, Z, average_3_in_gag3(s_11(X), Y, Z))
if_average_3_in_2_gag4(X, Y, Z, average_3_out_gag3(s_11(X), Y, Z)) -> average_3_out_gag3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gag4(X, Y, Z, average_3_out_gag3(X, s_11(Y), Z)) -> average_3_out_gag3(s_11(X), Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
AVERAGE_3_IN_GAG3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> AVERAGE_3_IN_GAG3(s_11(X), Y, Z)
AVERAGE_3_IN_GAG3(s_11(X), Y, Z) -> AVERAGE_3_IN_GAG3(X, s_11(Y), Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
AVERAGE_3_IN_GAG2(X, s_11(Z)) -> AVERAGE_3_IN_GAG2(s_11(X), Z)
AVERAGE_3_IN_GAG2(s_11(X), Z) -> AVERAGE_3_IN_GAG2(X, Z)
From the DPs we obtained the following set of size-change graphs: